home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1986 June / 64er_Magazin_86-06_1986_Markt__Technik_de_Side_A.d64 / read vizawrite (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  7KB  |  323 lines

  1. 10 print"[147]    ********************************"
  2. 20 print"    *                              *"
  3. 30 print"    *       read  vizawrite        *"
  4. 40 print"    *                              *"
  5. 50 print"    *       von  klaus heck        *"
  6. 60 print"    *                              *"
  7. 70 print"    ********************************"
  8. 80 :
  9. 90 rem ------------------------------
  10. 100 rem  vizawrite-file oeffnen
  11. 110 print" welches vizawrite-file soll eingelesen    werden"
  12. 120 inputna$
  13. 130 open15,8,15
  14. 140 open1,8,5,na$+",p,r"
  15. 150 gosub3190
  16. 160 print" textausgabe auf bildschirm : 3"
  17. 170 print" textausgabe auf seq-datei  : 8"
  18. 180 getge$:ifge$=""then180
  19. 190 ge=val(ge$)
  20. 200 ifge=3thenopen2,ge
  21. 210 ifge=8thenopen2,ge,2,"@:seq "+na$+",s,w"
  22. 220 gosub3190
  23. 230 ifge<>3andge<>8then160
  24. 240 :
  25. 250 rem ------------------------------
  26. 260 rem  umschaltung gross/klein
  27. 270 print"[147]"
  28. 280 poke53272,23
  29. 290 :
  30. 300 rem ------------------------------
  31. 310 rem  vorspann einlesen
  32. 320 :
  33. 330 rem pruefen auf vizawrite  (0-3)
  34. 340 get#1,a$:ifa$=""thena$=chr$(0)
  35. 350 gosub3190
  36. 360 ifasc(a$)<>86then3130
  37. 370 get#1,a$:ifa$=""thena$=chr$(0)
  38. 380 ifasc(a$)<>255then3130
  39. 390 get#1,a$:ifa$=""thena$=chr$(0)
  40. 400 ifasc(a$)<>86then3130
  41. 410 get#1,a$:ifa$=""thena$=chr$(0)
  42. 420 ifasc(a$)<>87then3130
  43. 430 :
  44. 440 rem anzahl zeichen  (4,5)
  45. 450 get#1,lb$:iflb$=""thenlb$=chr$(0)
  46. 460 get#1,hb$:ifhb$=""thenhb$=chr$(0)
  47. 470 ze=asc(lb$)+asc(hb$)*256
  48. 480 print" [193]nz. [218]eichen im [212]ext ";ze
  49. 490 :
  50. 500 rem anzahl seiten  (6,7)
  51. 510 get#1,lb$:iflb$=""thenlb$=chr$(0)
  52. 520 get#1,hb$:ifhb$=""thenhb$=chr$(0)
  53. 530 se=asc(lb$)+asc(hb$)*256
  54. 540 se=se-2
  55. 550 print" [193]nz. [212]extseiten      ";se
  56. 560 :
  57. 570 rem dummy  (8-14)
  58. 580 forj=8to14
  59. 590 get#1,a$:ifa$=""thena$=chr$(0)
  60. 600 next
  61. 610 :
  62. 620 rem dateinamen  (15-31)
  63. 630 i=14:aa$=""
  64. 640 get#1,a$:ifa$=""thena$=chr$(0)
  65. 650 i=i+1
  66. 660 ifasc(a$)=96then690
  67. 670 aa$=aa$+a$
  68. 680 goto640
  69. 690 print" [198]ilename              ";aa$
  70. 700 i=i+1:ifi>30then750
  71. 710 forj=ito31
  72. 720 get#1,a$:ifa$=""thena$=chr$(0)
  73. 730 next
  74. 740 :
  75. 750 rem printer type  (32,33)
  76. 760 get#1,a$:ifa$=""thena$=chr$(0)
  77. 770 get#1,hb$:ifhb$=""thenhb$=chr$(0)
  78. 780 ifasc(a$)>0andasc(a$)<27thena$=chr$(asc(a$)+64):goto800
  79. 790 ifasc(a$)>64andasc(a$)<123thena$=chr$(asc(a$)+128)
  80. 800 print" [196]rucker [212]yp           ";a$
  81. 810 :
  82. 820 rem dummy  (34)
  83. 830 get#1,a$:ifa$=""thena$=chr$(0)
  84. 840 :
  85. 850 rem form feed  (35)
  86. 860 get#1,a$:ifa$=""thena$=chr$(0)
  87. 870 a$=chr$(asc(a$)+64)
  88. 880 print" [198]ormular [214]orschub     ";a$
  89. 890 :
  90. 900 rem auto l/feed  (36)
  91. 910 get#1,a$:ifa$=""thena$=chr$(0)
  92. 920 ifasc(a$)>0andasc(a$)<27thena$=chr$(asc(a$)+64):goto940
  93. 930 ifasc(a$)>64andasc(a$)<123thena$=chr$(asc(a$)+128)
  94. 940 print" [193]uto. [218]eilenvorschub  ";a$
  95. 950 :
  96. 960 rem form length  (37,38)
  97. 970 get#1,lb$:iflb$=""thenlb$=chr$(0)
  98. 980 get#1,hb$:ifhb$=""thenhb$=chr$(0)
  99. 990 d=asc(lb$)+asc(hb$)*256
  100. 1000 print" [198]ormularlaenge       ";d
  101. 1010 :
  102. 1020 rem single  (39)
  103. 1030 get#1,a$:ifa$=""thena$=chr$(0)
  104. 1040 a$=chr$(asc(a$)+64)
  105. 1050 print" [197]inzelblatt           ";a$
  106. 1060 :
  107. 1070 rem offset  (40,41)
  108. 1080 get#1,lb$:iflb$=""thenlb$=chr$(0)
  109. 1090 get#1,hb$:ifhb$=""thenhb$=chr$(0)
  110. 1100 d=asc(lb$)+asc(hb$)*256
  111. 1110 print" linker [196]ruckrand ab  ";d
  112. 1120 :
  113. 1130 rem header  (42)
  114. 1140 get#1,a$:ifa$=""thena$=chr$(0)
  115. 1150 a$=chr$(asc(a$)+64)
  116. 1160 print" [203]opfzeile             ";a$
  117. 1170 :
  118. 1180 rem dummy  (43)
  119. 1190 get#1,a$:ifa$=""thena$=chr$(0)
  120. 1200 :
  121. 1210 rem pitch  (44,45)
  122. 1220 get#1,lb$:iflb$=""thenlb$=chr$(0)
  123. 1230 get#1,hb$:ifhb$=""thenhb$=chr$(0)
  124. 1240 d=asc(lb$)+asc(hb$)*256
  125. 1250 print" [211]chriftart           ";d
  126. 1260 :
  127. 1270 rem lines/inch  (46,47)
  128. 1280 get#1,lb$:iflb$=""thenlb$=chr$(0)
  129. 1290 get#1,hb$:ifhb$=""thenhb$=chr$(0)
  130. 1300 d=asc(lb$)+asc(hb$)*256
  131. 1310 print" [218]eilen/inch          ";d
  132. 1320 :
  133. 1330 rem justification  (48)
  134. 1340 get#1,a$:ifa$=""thena$=chr$(0)
  135. 1350 a$=chr$(asc(a$)+64)
  136. 1360 print" [210]andausgleich         ";a$
  137. 1370 :
  138. 1380 rem global/fill  (49)
  139. 1390 get#1,gf$:ifgf$=""thengf$=chr$(0)
  140. 1400 ifasc(gf$)=32then1420
  141. 1410 gf$=chr$(asc(gf$)+64)
  142. 1420 print" [212]ext anh./einf.       ";gf$
  143. 1430 :
  144. 1440 rem dateinamen  (50-66)
  145. 1450 i=49:na$=""
  146. 1460 get#1,a$:ifa$=""thena$=chr$(0)
  147. 1470 i=i+1
  148. 1480 ifasc(a$)=96then1530
  149. 1490 ifasc(a$)>0andasc(a$)<27thena$=chr$(asc(a$)+64):goto1510
  150. 1500 ifasc(a$)>64andasc(a$)<123thena$=chr$(asc(a$)+128)
  151. 1510 na$=na$+a$
  152. 1520 goto1460
  153. 1530 print" naechstes [198]ile        ";na$
  154. 1540 i=i+1:ifi>65then1580
  155. 1550 forj=ito66
  156. 1560 get#1,a$:ifa$=""thena$=chr$(0)
  157. 1570 next
  158. 1580 :
  159. 1590 rem text colour  (67)
  160. 1600 get#1,a$:ifa$=""thena$=chr$(0)
  161. 1610 d=1:gosub2840
  162. 1620 print" [198]arbe [212]ext            ";col$
  163. 1630 :
  164. 1640 rem border colour  (68)
  165. 1650 get#1,a$:ifa$=""thena$=chr$(0)
  166. 1660 d=2:gosub2840
  167. 1670 print" [198]arbe [210]ahmen          ";col$
  168. 1680 :
  169. 1690 rem background colour  (69)
  170. 1700 get#1,a$:ifa$=""thena$=chr$(0)
  171. 1710 d=3:gosub2840
  172. 1720 print" [198]arbe [200]intergrund     ";col$
  173. 1730 :
  174. 1740 rem dummy  (70-199)
  175. 1750 forj=70to199
  176. 1760 get#1,a$:ifa$=""thena$=chr$(0)
  177. 1770 next
  178. 1780 :
  179. 1790 print" weiter ? >j< "
  180. 1800 getjn$:ifjn$=""then1800
  181. 1810 ifjn$<>"j"then2410
  182. 1820 print"[147]"
  183. 1830 :
  184. 1840 rem ------------------------------
  185. 1850 rem  alle seiten uebernehmen ?
  186. 1860 ip=-1:rem seitenzaehler
  187. 1870 print"[211]oll [215][207][210][203] [208][193][199][197][160]mit uebertragen werden?     >j/n<"
  188. 1880 getjn$:ifjn$=""then1880
  189. 1890 ifjn$="n"thenwp=0
  190. 1900 ifjn$="j"thenwp=1
  191. 1910 ifjn$<>"j"andjn$<>"n"then1870
  192. 1920 print"[211]oll [200][197][193][196][197][210][160][208][193][199][197] mit uebertragen werden?   >j/n<"
  193. 1930 getjn$:ifjn$=""then1930
  194. 1940 ifjn$="n"thenhp=0
  195. 1950 ifjn$="j"thenhp=1
  196. 1960 ifjn$<>"j"andjn$<>"n"then1920
  197. 1970 print"[211]oll [198][207][207][212][197][210][160][208][193][199][197] mit uebertragen werden?   >j/n<"
  198. 1980 getjn$:ifjn$=""then1980
  199. 1990 ifjn$="n"thenfp=0
  200. 2000 ifjn$="j"thenfp=1
  201. 2010 ifjn$<>"j"andjn$<>"n"then1970
  202. 2020 print"[147]"
  203. 2030 :
  204. 2040 rem ------------------------------
  205. 2050 rem  text einlesen
  206. 2060 ifge=8thenprint"      [194]itte warten ich arbeite"
  207. 2070 fl=0:rem spaltenzaehler formatzeile
  208. 2080 i=0:rem spaltenzaehler textzeile
  209. 2090 aa$="":rem textzeile
  210. 2100 get#1,a$:ifa$=""thena$=chr$(0)
  211. 2110 :
  212. 2120 rem ------------------------------
  213. 2130 rem  bildschirm-code -> ascii-code
  214. 2140 ifasc(a$)=220thenaa$=aa$+a$:goto2270:rem return
  215. 2150 ifasc(a$)=230then2730:rem format line
  216. 2160 ifasc(a$)=241then2490:rem end page
  217. 2170 ifasc(a$)=255then2310:rem end text
  218. 2180 ifasc(a$)>=0andasc(a$)<32thena$=chr$(asc(a$)+64):goto2210
  219. 2190 ifasc(a$)>=64andasc(a$)<128thena$=chr$(asc(a$)+128):goto2210
  220. 2200 :
  221. 2210 aa$=aa$+a$:i=i+1:rem zeile zusammenstellen
  222. 2220 ifi=flthen2600:rem zeile ohne return abbrechen
  223. 2230 goto2100
  224. 2240 :
  225. 2250 rem ------------------------------
  226. 2260 rem textzeile ausgeben
  227. 2270 ifwp=1thenprint#2,aa$
  228. 2280 goto2080
  229. 2290 :
  230. 2300 rem ------------------------------
  231. 2310 rem programmende
  232. 2320 ifgf$<>"g"then2410:rem check global
  233. 2330 print"[147] soll [198]ile : "na$:print"  angehaengt werden?  >j/n<"
  234. 2340 getjn$:ifjn$=""then2340
  235. 2350 ifjn$<>"j"then2410
  236. 2360 close1
  237. 2370 open1,8,5,na$+",p,r"
  238. 2380 gosub3190
  239. 2390 print"[147]"
  240. 2400 goto310
  241. 2410 poke53272,21:rem gross/grafik
  242. 2420 close2
  243. 2430 close1
  244. 2440 close15
  245. 2450 end
  246. 2460 :
  247. 2470 rem ------------------------------
  248. 2480 rem  seitenuebernahme schalten
  249. 2490 ifwp=1andi<>0thenprint#2,aa$
  250. 2500 aa$=a$
  251. 2510 ifip=-1andwp=0thenaa$=""
  252. 2520 ip=ip+1
  253. 2530 wp=1:rem wird als schalter benutzt
  254. 2540 ifip=seandhp=0thenwp=0
  255. 2550 ifip=se+1andfp=0thenwp=0
  256. 2560 goto2270
  257. 2570 :
  258. 2580 rem ------------------------------
  259. 2590 rem  zeilenende bestimmen
  260. 2600 fi=fl
  261. 2610 ifmid$(aa$,fi,1)=" "ormid$(aa$,fi,1)="-"then2660
  262. 2620 fi=fi-1
  263. 2630 iffi=1then2650
  264. 2640 goto2610
  265. 2650 fi=fl
  266. 2660 print#2,left$(aa$,fi)
  267. 2670 i=fl-fi
  268. 2680 aa$=right$(aa$,i)
  269. 2690 goto2100
  270. 2700 :
  271. 2710 rem ------------------------------
  272. 2720 rem  laenge der formatzeile best.
  273. 2730 fl=1
  274. 2740 tab=0:rem ersten tabulator finden
  275. 2750 aa$=aa$+a$
  276. 2760 get#1,a$:ifa$=""thena$=chr$(0)
  277. 2770 aa$=aa$+a$:fl=fl+1
  278. 2780 iftab=0andasc(a$)=219thenfl=0:tab=1
  279. 2790 ifasc(a$)=220then2270:rem return
  280. 2800 goto2760
  281. 2810 :
  282. 2820 rem ------------------------------
  283. 2830 rem  farbe bestimmen
  284. 2840 a=asc(a$)
  285. 2850 ifd=1then2870
  286. 2860 ifd=2thena=a-240
  287. 2870 ifa=0thencol$="schwarz"
  288. 2880 ifa=1thencol$="weiss"
  289. 2890 ifa=2thencol$="rot"
  290. 2900 ifa=3thencol$="tuerkis"
  291. 2910 ifa=4thencol$="violett"
  292. 2920 ifa=5thencol$="gruen"
  293. 2930 ifa=6thencol$="blau"
  294. 2940 ifa=7thencol$="gelb"
  295. 2950 ifa=8thencol$="orange"
  296. 2960 ifa=9thencol$="braun"
  297. 2970 ifa=10thencol$="hellrot"
  298. 2980 ifa=11thencol$="grau 1"
  299. 2990 ifa=12thencol$="grau 2"
  300. 3000 ifa=13thencol$="hellgruen"
  301. 3010 ifa=14thencol$="hellblau"
  302. 3020 ifa=15thencol$="grau 3"
  303. 3030 ifa=16thencol$="schwarz"
  304. 3040 ifa=17thencol$="weiss"
  305. 3050 ifa=18thencol$="rot"
  306. 3060 ifa=35thencol$="tuerkis"
  307. 3070 ifa=36thencol$="violett"
  308. 3080 ifa=53thencol$="gruen"
  309. 3090 return
  310. 3100 :
  311. 3110 rem ------------------------------
  312. 3120 rem  fehlerbehandlung
  313. 3130 print"   fehler !!!"
  314. 3140 print"  dies ist kein durch vizawrite            erstellter text"
  315. 3150 goto2410
  316. 3160 :
  317. 3170 rem ------------------------------
  318. 3180 rem  fehlerkanal lesen
  319. 3190 input#15,fw,fx$,fy,fz
  320. 3200 iffw=0thenreturn
  321. 3210 print"  fehler: ";fw;fx$
  322. 3220 goto2410
  323.